//
// Created by mayn on 2021/4/29.
//
#include <jni.h>
#include <string>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
#include <stdlib.h>
#include <unistd.h>

#include <android/log.h>

extern "C"{

// 我的c库
#include "dai_log.h"

}

#define TAG		"MyLog"
#define LOGI(...)	__android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__)
#define LOGD(...)	__android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
#define LOGW(...)	__android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__)
#define	LOGE(...)	__android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)

extern "C"
JNIEXPORT void JNICALL
Java_com_helloandroid_services_deamon_DeamonService_startDeamonProcess(
        JNIEnv* env,
        jobject /* this */) {

    // 里面写一些代码
    LOGE("hello world! My age is:%d",18);
}

extern "C"
JNIEXPORT void JNICALL
Java_com_helloandroid_services_deamon_DeamonService_startGuerProcess(JNIEnv *env, jobject thiz) {
    // 直接搞一个孤儿进程
    pid_t  pid = fork();
    if (pid < 0){
        dai_log("生成 mid 进程失败!");
        exit(1);
    }else if(pid == 0){
        dai_log("生成 mid 进程成功! .mid 进程 pid:%ld",getpid());
        pid = fork();
        if (pid < 0){
            dai_log("生成 孤儿 进程失败!");
            exit(1);
        }else if(pid == 0){
            dai_log("生成  孤儿 进程成功! .孤儿 进程 pid:%ld",getpid());
            int geCounter = 0;
            while (1){
                sleep(2);
                geCounter++;
                dai_log("geCounter:%d",geCounter);
            }
        }else{
            // 托孤
            exit(0);
        }
    }
}